/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package model.vendavista;
import java.util.List;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceException;
import model.excecoes.ErroDAOException;
import model.excecoes.ErroNegocioException;
import model.interfaces.INegocioVendaVista;
import model.factory.Factory;
/**
 *
 * @author Marcos
 */
public class NegocioVendaVista implements INegocioVendaVista{

    private RepositorioVendaVista repVenda = null;
    
    public NegocioVendaVista(){
        repVenda = Factory.getVendaVistaDAO();
    }
    
    @Override
    public void registrarVendaVista(VendaVista venda) throws ErroDAOException, PersistenceException, NoResultException, ErroNegocioException {
        repVenda.cadastrar(venda);
    }

    @Override
    public void alterarVendaVista(VendaVista venda) throws ErroDAOException, PersistenceException, NoResultException, ErroNegocioException {
        repVenda.alterar(venda);
    }

    @Override
    public void excluirVendaVista(VendaVista venda) throws ErroDAOException, PersistenceException, NoResultException, ErroNegocioException {
        repVenda.excluir(venda);
    }

    @Override
    public List<VendaVista> listarVenda(String consulta, String campo) throws ErroDAOException, PersistenceException, NoResultException, ErroNegocioException {
        List<VendaVista> vendas = repVenda.listarVendaVista(consulta, campo);
        
        if(!consulta.equals("Todos") && !campo.equals("Todos")){
            if(vendas.isEmpty()){
                throw new ErroNegocioException("Venda não encontrada ou não computada.\nPor favor informe os dados corretos ou cancele a operação.");
            }
        }
        
        return vendas;
    }

    @Override
    public int identificarProduto(String descricao, String marca) throws ErroDAOException, PersistenceException, NoResultException, ErroNegocioException {
        return repVenda.identificarCodigoProduto(descricao, marca);
    }

    @Override
    public int identificarPerfil(String nome, String login) throws ErroDAOException, PersistenceException, NoResultException {
        return repVenda.identificaCodigoPerfil(nome, login);
    }
    
}
